-- Network Working Group                                            D. Levi
-- Request for Comments: 4318                               Nortel Networks
-- Category: Standards Track                                  D. Harrington
--                                                       Effective Software
--                                                            December 2005

--                Definitions of Managed Objects for Bridges
--                    with Rapid Spanning Tree Protocol

   RSTP-MIB DEFINITIONS ::= BEGIN

   -- -------------------------------------------------------------
   -- MIB for IEEE 802.1w Rapid Spanning Tree Protocol
   -- -------------------------------------------------------------

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, Integer32, mib-2
           FROM SNMPv2-SMI
       TruthValue
           FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF
       dot1dStp, dot1dStpPortEntry
           FROM BRIDGE-MIB;

   rstpMIB MODULE-IDENTITY
       LAST-UPDATED "200512070000Z"
       ORGANIZATION "IETF Bridge MIB Working Group"
       CONTACT-INFO
           "Email: Bridge-mib@ietf.org"
       DESCRIPTION
           "The Bridge MIB Extension module for managing devices
            that support the Rapid Spanning Tree Protocol defined
            by IEEE 802.1w.

            Copyright (C) The Internet Society (2005).  This version of
            this MIB module is part of RFC 4318; See the RFC itself for
            full legal notices."

       REVISION     "200512070000Z"
       DESCRIPTION
            "The initial version of this MIB module as published in
             RFC 4318."
       ::= { mib-2 134 }

   -- ---------------------------------------------------------- --
   -- subtrees in the RSTP-MIB
   -- ---------------------------------------------------------- --

   rstpNotifications OBJECT IDENTIFIER ::= { rstpMIB 0 }
   rstpObjects       OBJECT IDENTIFIER ::= { rstpMIB 1 }
   rstpConformance   OBJECT IDENTIFIER ::= { rstpMIB 2 }

   -- -------------------------------------------------------------
   -- Addition to the dot1dStp group
   -- -------------------------------------------------------------

   dot1dStpVersion OBJECT-TYPE
       SYNTAX      INTEGER {
                       stpCompatible(0),
                       rstp(2)
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The version of Spanning Tree Protocol the bridge is
            currently running.  The value 'stpCompatible(0)'
            indicates the Spanning Tree Protocol specified in
            IEEE 802.1D-1998 and 'rstp(2)' indicates the Rapid
            Spanning Tree Protocol specified in IEEE 802.1w and
            clause 17 of 802.1D-2004.  The values are directly from
            the IEEE standard.  New values may be defined as future
            versions of the protocol become available.

            The value of this object MUST be retained across
            reinitializations of the management system."
       REFERENCE
           "IEEE 802.1w clause 14.8.1, 17.12, 17.16.1"
       DEFVAL      { rstp }
       ::= { dot1dStp 16 }

   dot1dStpTxHoldCount OBJECT-TYPE
       SYNTAX      Integer32 (1..10)
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The value used by the Port Transmit state machine to limit
            the maximum transmission rate.

            The value of this object MUST be retained across
            reinitializations of the management system."

       REFERENCE
           "IEEE 802.1w clause 17.16.6"
       DEFVAL      { 3 }
       ::= { dot1dStp 17 }

   --
   -- { dot1dStp 18 } was used to represent dot1dStpPathCostDefault
   -- in an earlier version of this MIB.  It has since been
   -- obsoleted, and should not be used.
   --

   dot1dStpExtPortTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF Dot1dStpExtPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A table that contains port-specific Rapid Spanning Tree
            information."
       ::= { dot1dStp 19 }

   dot1dStpExtPortEntry OBJECT-TYPE
       SYNTAX      Dot1dStpExtPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A list of Rapid Spanning Tree information maintained by
            each port."
       AUGMENTS    { dot1dStpPortEntry }
       ::= { dot1dStpExtPortTable 1 }

   Dot1dStpExtPortEntry ::=
       SEQUENCE {
           dot1dStpPortProtocolMigration
               TruthValue,
           dot1dStpPortAdminEdgePort
               TruthValue,
           dot1dStpPortOperEdgePort
               TruthValue,
           dot1dStpPortAdminPointToPoint
               INTEGER,
           dot1dStpPortOperPointToPoint
               TruthValue,
           dot1dStpPortAdminPathCost
               Integer32
       }

   dot1dStpPortProtocolMigration OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "When operating in RSTP (version 2) mode, writing true(1)
            to this object forces this port to transmit RSTP BPDUs.
            Any other operation on this object has no effect and
            it always returns false(2) when read."
       REFERENCE
           "IEEE 802.1w clause 14.8.2.4, 17.18.10, 17.26"
       ::= { dot1dStpExtPortEntry 1 }

   dot1dStpPortAdminEdgePort OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The administrative value of the Edge Port parameter.  A
            value of true(1) indicates that this port should be
            assumed as an edge-port, and a value of false(2) indicates
            that this port should be assumed as a non-edge-port.

            Setting this object will also cause the corresponding
            instance of dot1dStpPortOperEdgePort to change to the
            same value.  Note that even when this object's value
            is true, the value of the corresponding instance of
            dot1dStpPortOperEdgePort can be false if a BPDU has
            been received.

            The value of this object MUST be retained across
            reinitializations of the management system."

       REFERENCE
           "IEEE 802.1t clause 14.8.2, 18.3.3"
       ::= { dot1dStpExtPortEntry 2 }

   dot1dStpPortOperEdgePort OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The operational value of the Edge Port parameter.  The
            object is initialized to the value of the corresponding
            instance of dot1dStpPortAdminEdgePort.  When the
            corresponding instance of dot1dStpPortAdminEdgePort is
            set, this object will be changed as well.  This object
            will also be changed to false on reception of a BPDU."

       REFERENCE
           "IEEE 802.1t clause 14.8.2, 18.3.4"
       ::= { dot1dStpExtPortEntry 3 }

   dot1dStpPortAdminPointToPoint OBJECT-TYPE
       SYNTAX      INTEGER {
                       forceTrue(0),
                       forceFalse(1),
                       auto(2)
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The administrative point-to-point status of the LAN segment
            attached to this port, using the enumeration values of the
            IEEE 802.1w clause.  A value of forceTrue(0) indicates
            that this port should always be treated as if it is
            connected to a point-to-point link.  A value of
            forceFalse(1) indicates that this port should be treated as
            having a shared media connection.  A value of auto(2)
            indicates that this port is considered to have a
            point-to-point link if it is an Aggregator and all of its
            members are aggregatable, or if the MAC entity
            is configured for full duplex operation, either through
            auto-negotiation or by management means.  Manipulating this
            object changes the underlying adminPortToPortMAC.

            The value of this object MUST be retained across
            reinitializations of the management system."

      REFERENCE
          "IEEE 802.1w clause 6.4.3, 6.5, 14.8.2"
      ::= { dot1dStpExtPortEntry 4 }

   dot1dStpPortOperPointToPoint OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The operational point-to-point status of the LAN segment
            attached to this port.  It indicates whether a port is
            considered to have a point-to-point connection.
            If adminPointToPointMAC is set to auto(2), then the value
            of operPointToPointMAC is determined in accordance with the
            specific procedures defined for the MAC entity concerned,
            as defined in IEEE 802.1w, clause 6.5.  The value is
            determined dynamically; that is, it is re-evaluated whenever
            the value of adminPointToPointMAC changes, and whenever
            the specific procedures defined for the MAC entity evaluate
            a change in its point-to-point status."
       REFERENCE
           "IEEE 802.1w clause 6.4.3, 6.5, 14.8.2"
       ::= { dot1dStpExtPortEntry 5 }

   dot1dStpPortAdminPathCost OBJECT-TYPE
       SYNTAX      Integer32 (0..200000000)
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The administratively assigned value for the contribution
            of this port to the path cost of paths toward the spanning
            tree root.

            Writing a value of '0' assigns the automatically calculated
            default Path Cost value to the port.  If the default Path
            Cost is being used, this object returns '0' when read.

            This complements the object dot1dStpPortPathCost or
            dot1dStpPortPathCost32, which returns the operational value
            of the path cost.

            The value of this object MUST be retained across
            reinitializations of the management system."
       REFERENCE
           "IEEE 802.1D-1998: Section 8.5.5.3"
       ::= { dot1dStpExtPortEntry 6 }

   -- -------------------------------------------------------------
   -- rstpMIB - Conformance Information
   -- -------------------------------------------------------------

   rstpGroups OBJECT IDENTIFIER ::= { rstpConformance 1 }

   rstpCompliances OBJECT IDENTIFIER ::= { rstpConformance 2 }

   -- -------------------------------------------------------------
   -- Units of conformance
   -- -------------------------------------------------------------

   rstpBridgeGroup OBJECT-GROUP
       OBJECTS {
           dot1dStpVersion,
           dot1dStpTxHoldCount
       }
       STATUS      current
       DESCRIPTION
           "Rapid Spanning Tree information for the bridge."
       ::= { rstpGroups 1 }

   rstpPortGroup OBJECT-GROUP
       OBJECTS {
           dot1dStpPortProtocolMigration,
           dot1dStpPortAdminEdgePort,
           dot1dStpPortOperEdgePort,
           dot1dStpPortAdminPointToPoint,
           dot1dStpPortOperPointToPoint,
           dot1dStpPortAdminPathCost
       }
       STATUS      current
       DESCRIPTION
           "Rapid Spanning Tree information for individual ports."
       ::= { rstpGroups 2 }

   -- -------------------------------------------------------------
   -- Compliance statements
   -- -------------------------------------------------------------

   rstpCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
           "The compliance statement for device support of Rapid
            Spanning Tree Protocol (RSTP) bridging services."
       MODULE
           MANDATORY-GROUPS {
               rstpBridgeGroup,
               rstpPortGroup
           }
       ::= { rstpCompliances 1 }

   END